#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//void prt()
//{
//	int i;
//	for (i = 5; i < 8; i++)
//		printf("%c", '*');
//	printf("\t");
//} 
//int main()
//{
//	int i;
//	for (i = 5; i <= 8; i++)
//	prt();
//	return 0;
//}


//int main()
//{
//	int a = 3;
//	printf("%d\n", (a += a -= a * a));
//	return 0;
//}


//int main() {
//    int n, c;
//    scanf("%d", &n);
//    int count2 = 0, count = 0;
//    int sum = 0;
//    while (n--)
//    {
//        scanf("%d", &c);
//        if (c < 0)
//        {
//            count++;
//        }
//        else if (c > 0)
//        {
//            sum += c;
//            count2++;
//        }
//        else
//        {
//        }
//    }
//    float avg = (float)sum / count2;
//    if (count2 == 0)
//        avg = 0.0;
//    printf("%d %.1lf", count, avg);
//    return 0;
//}

//int main() {
//    int sum = 0;
//    int num = 2;
//    int n = 0;
//    scanf("%d", &n);
//    while (n--)
//    {
//        sum += num;
//        num += 3;
//    }
//    printf("%d", sum);
//    return 0;
//}
//int main() {
//    int m;
//    scanf("%d", &m);
//    int m3 = pow(m, 3);
//    int mid = m3 / m;
//    int num1;
//    if (m % 2 == 0)
//    {
//        num1 = (mid + 1) - 2 * (m / 2);
//    }
//    else
//    {
//        num1 = mid - 2 * (m / 2);
//    }
//    printf("%d", num1);
//    while (--m)
//    {
//        num1 += 2;
//        printf("+%d", num1);
//    }
//    return 0;
//}

int minNumberInRotateArray(int* nums, int numsLen) {
    // write code here
    int left = 0;
    int right = numsLen - 1;
    int mid = (left + right) / 2;
    while (left < right)
    {
        mid = (left + right) / 2;
        if (nums[mid] < nums[right])
        {
            right = mid;
        }
        else if (nums[mid] > nums[right])
        {
            left = mid + 1;
        }
        else
        {
            right--;
        }
    }
    return nums[left];
}
